Software testing analyzes the functional correctness, quality and reliability software code used in various systems, such as routers, switches, etc. Technologies are changing rapidly as users from a wide range of backgrounds and vertical industries have brought technology into homes, offices, and increasingly into the public air space. As a result, software is continuously updated to keep pace with the changing technologies and growing needs of the market. Software code is typically divided into software components, and each component is tested to identify failures of “bugs.” Identifying such bugs enables engineers and software developers to modify components to fix the bugs. Engineers also modify components to add new components to software code in order to introduce new features and capabilities. Typically, engineers may also develop one or more tests embodied in scripts or other code modules to test the new components. Engineers typically test software using testing scripts, which automate manual testing steps. A given script may test for known bugs in one or more components and may also discover new bugs. For example, a set of scripts may cause a server to transmit packets to a port of a router. The packets may contain information that illicit particular functions at the router (e.g., return certain information or acknowledgements). Some packets may simulate denial-of-service attacks to test the security of the software code. The software code, including all or a subset of its components, to be tested are typically loaded into a testbed, which could be a router hardware platform, switch hardware platform, access point hardware platform, or other network device, for example, that is connected to a testing environment. In other implementations, a test bed may comprise a server operative to provide a simulated or virtual testing environment for the software code to be tested. A testing application may then execute one or more test scripts to test one or more aspects of the software code.